﻿// 模拟 · 例1-字符串展开.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

/*
链接：https://ac.nowcoder.com/acm/contest/20960/1001
来源：牛客网

对于给定由减号"-" 、小写字母和数字组成的字符串s ，我们认为减号是一种简写，在完整的输出时，
需要用连续递增的字母或数字串替代其中的减号。例如，将
"d-h" 和"4-8" 分别输出为
"defghh" 和"456788"。
具体地，我们这样定义展开规则：当出现减号、且减号两侧为同类型的字符（都是小写字母或都是数字）、且右侧字符的
Ascii 码大于左侧字符时，则需要展开该片段。

特别的，在本题中，展开规则还由一个三元组

(p1​ ,p2 ,p3) 额外控制：
p1 控制展开方式：∙∙
当p1 =1 且减号两侧均为字母时，使用对应字符的小写字母填充；两侧为其他情况时，无视这条规则;
当p1 =2 且减号两侧均为字母时，使用对应字符的大写字母填充；两侧为其他情况时，无视这条规则；
当p1 =3 时，不论减号两侧为什么，都使用与填充字符个数相同的星号"*" 填充；

p2 控制每个填充字符重复的次数：表示每一个填充的字符都需要重复k 次。
例如，当p2 =3 时，子串"d-h" 应扩展为"deeefffggghh"。减号两侧的字符不变。
p3 控制是否逆序输出填充部分：∙
当p3 =1 时，表示维持原有顺序；
当p3 =2 时，表示采用逆序输出，注意这时仍然不包括减号两端的字符。例如当
p1=1; p2 =2; p3 =2 时，子串"d-h" 应扩展为"dggffeeh"。

还需要注意以下特殊情况：
如果右侧字符是左侧字符的直接后继（如"d-e" 或"3-4" ），则只需删除减号；
 
如果右侧字符的Ascii 码小于等于左侧字符，则保持原样输出（包含减号）。
输入描述:
第一行输入三个整数
𝑝1,𝑝2,𝑝3(1≤𝑝1≤3;1≤𝑝2≤8;1≤𝑝3≤2)
p1,p2,p3​
(1≤p1 ≤3; 1≤p2 ≤8; 1≤p3 ≤2) 代表展开规则中的
𝑝1,𝑝2,𝑝3 。
第二行输入一个长度不超过100 ，由减号"-" 、小写字母和数字组成的字符串s ，代表需要展开的字符串。
输出描述:
在一行上输出一个字符串，代表展开后的答案。
示例1
输入
复制
1 2 1
abcs-w1234-9s-4zz
输出
复制
abcsttuuvvw1234556677889s-4zz
说明
在这一组测试数据中，答案为
"abcsttuuvvww1234556677889s4zz" 。

示例2
输入
复制
2 3 2
a-d-d
输出
复制
aCCCBBBd-d

示例3
输入
复制
3 4 2
di-jkstra2-6
输出
复制
dijkstra2************6
*/

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

 